<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>

  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>Filtre AviSynth de conversion d'espace de couleur</title>


  <link rel="stylesheet" type="text/css" href="../../avisynth.css">

</head>


<body>

<h2>
<a name="ConvertTo"></a>ConvertToRGB /
ConvertToRGB24 / ConvertToRGB32<br>

ConvertToYUY2 / ConvertBackToYUY2 / ConvertToYV12</h2>

<p><code>ConvertToRGB </code>(<var>clip [,
string "matrix"] [, bool "interlaced"]</var>)<br>

<code>ConvertToRGB24 </code>(<var>clip [, string
"matrix"] [, bool "interlaced"]</var>)<br>

<code>ConvertToRGB32 </code>(<var>clip [, string
"matrix"] [, bool "interlaced"]</var>)<br>

<code>ConvertToYUY2 </code>(<var>clip [, string
"matrix"] [, bool "interlaced"]</var>)<br>

<code>ConvertToYV12 </code>(<var>clip [, string
"matrix"] [, bool "interlaced"]</var>)<br>

<code>ConvertBackToYUY2 </code>(<var>clip [, string
"matrix"]</var>)
</p>

<p> <var>matrix</var>: par d&eacute;faut sur la valeur&nbsp;unspecified (non-sp&eacute;cifi&eacute;e).
Contr&ocirc;le les coefficients de couleur et les facteurs
d'&eacute;chelle utilis&eacute;s dans les conversions RGB - YUV. </p>

<ul>

  <li>unspecified&nbsp;(non-sp&eacute;cifi&eacute;e) : Utilise les coefficients Rec.601, ramen&eacute;s &agrave; la plage de couleur TV [16,235]. </li>

  <li>"PC.601" :&nbsp;Utilise les coefficients Rec.601, avec la plage
[0,255]. </li>

  <li>"Rec709" :&nbsp;Utilise les coefficients Rec.709, ramen&eacute;s &agrave; la plage de couleur TV  </li>

  <li>"PC.709" :&nbsp;Utilise les coefficients Rec.709, avec la plage [0,255]. </li>

</ul>

<p> <var>interlaced</var>: par d&eacute;faut sur false (faux). Utilise un profil entrelac&eacute; pour les conversions de chrominance YV12 - YUY2/RGB.
</p>

<p>Avant v2.50, Avisynth pouvait g&eacute;rer en interne deux espaces
de couleur:
RGB et YUY2. A partir de v2.50, AviSynth g&egrave;re un
troisi&egrave;me espace de couleur: le YV12. Ces filtres permettent de
passer de l'un &agrave; l'autre. Si la video est d&eacute;j&agrave;
dans le format demand&eacute;, elle est transmise sans &ecirc;tre
modifi&eacute;e. Dans toute cette documentation, le terme RGB
d&eacute;signe en fait RGBA = RGB32. <code>ConvertToRGB</code>
converti en RGB32
sauf si votre clip est en RGB24. Si vous avez besoin de RGB 24-bit pour une quelconque raison, utilisez <code>ConvertToRGB24</code>
explicitement et <code>ConvertToRGB32</code> pour faire le contraire.
</p>


<p>La syntaxe et le fonctionnement de&nbsp;<code>ConvertToRGB24</code>
est identique &agrave; celui de <code>ConvertToRGB</code>, sauf que le format de sortie est en&nbsp;24-bit. Si la source est en&nbsp;RGB32, le canal alpha sera supprim&eacute;.</p>
<p>Depuis v2.51/v2.52 l'option facultative <var>interlaced</var> a &eacute;t&eacute; ajout&eacute;e (<var>interlaced</var><i>=</i>false (faux)
est le param&egrave;tre par d&eacute;faut). Quand ce param&egrave;tre est sur&nbsp;false (faux), cela veut dire que le&nbsp;<var>clip</var>
est progressif, quand il est sur true (vrai), cela veut dire que le <var>clip</var>est
entrelac&eacute;.
Voici un exemple qui montre pourquoi cette option &agrave;
&eacute;t&eacute; rajout&eacute;e (on suppose au d&eacute;part que le
clip est en YV12 et qu'il est entrelac&eacute;):
</p>

<pre>SeparateFields(clip)<br>ConvertToYV12<br>Weave</pre>
Le clip sera mal r&eacute;&eacute;chantillonn&eacute;. C'est mieux d'utiliser la commande suivante:
<pre>ConvertToYV12(clip, interlaced=true)</pre>

Notez que <var>interlaced</var>=true ne fonctionne que si une
conversion YV12 &lt;-&gt; YUY2/RGB est demand&eacute;e; dans les autres
cas, elle est ignor&eacute;e. Vous pouvez en savoir plus en consultant "<a href="http://www.avisynth.org/FieldbasedVideo"><cite>Conversions de couleurs et video entrelac&eacute; / bas&eacute; sur des champs</cite></a>" (en anglais).
<p>Contrairement &agrave; ce que l'on pourrait penser, il n'y a pas une
fa&ccedil;on unique d'effectuer la conversion de l'espace YUV en RGB.
Dans AviSynth, les deux lesfa&ccedil;ons les plus utilis&eacute;es sont
impl&eacute;ment&eacute;es: Rec.601 et
Rec.709 (nom des sp&eacute;cifications officielles). Bien que &ccedil;a
ne soit pas correct dans tout les cas, les commandes suivantes devrait
&ecirc;tre correctes dans la plupart des cas:
</p>

<p>La premi&egrave;re m&eacute;thode (Rec.601) doit &ecirc;tre utilis&eacute;e quand votre source est de type
DivX/XviD ou sur une capture analogique:</p>

<pre>ConvertToRGB(clip)</pre>

<p>La seconde m&eacute;thode (Rec.709) doit &ecirc;tre utilis&eacute;e si votre source est de type
DVD ou HDTV:</p>

<pre>ConvertToRGB(clip, matrix="rec709")</pre>

<p>Dans <em>v2.56</em>, le contraire est &eacute;galement possible:</p>

<pre>ConvertToYUY2(clip, matrix="rec709") or ConvertToYV12(clip, matrix="rec709")</pre>

<p>Dans <em>v2.56</em>, <var>matrix</var>="pc.601"
(et <var>matrix</var>="pc.709") vous permettent de faire la conversion RGB
&lt;-&gt; YUV en conservant la plage de luminance, c'est &agrave; dire RGB
[0,255] &lt;-&gt; YUV [0,255] (&agrave; la place de la conversion habituelle/par d&eacute;faut RGB
[0,255] &lt;-&gt; YUV [16,235]).</p>

<p>Tout les filtres VirtualDub (charg&eacute;s avec la commande <code>LoadVirtualdubPlugin</code>, voir
<a href="../syntax.htm#Plugins">Plugins</a>) utilisent une entr&eacute;e en RGB32.</p>

<p><b>RGB24, RGB32:</b> Les valeurs sont enregistr&eacute;es en tant que valeurs rouge,
vert et bleu. En RGB32, il y a un canal Alpha en plus pour la
transparence. Les image peuvent avoir n'importe quelle taille.
</p>

<p><b>YUY2:</b> L'image est enregistr&eacute;e comme la combinaison
d'une valeur de luminance Y et de deux valeurs de chrominance U et V.
Pour deux pixels horizontaux, il y a seulement une valeur de
chrominance et deux valeurs de luminance (deux Y, une U, une V). La
largeur doit donc &ecirc;tre multiple de 2
</p>

<p><b>YV12:</b> M&ecirc;me chose que pour YUY2, mais il y a seulement
une valeur de chrominance pour 4 pixels (un carr&eacute; 2x2). les deux
dimensions de l'image doivent donc &ecirc;tre un multiple de 2. Si la
video est entrelac&eacute;e, la hauteur doit &ecirc;tre multiple de 4
parce que le carr&eacute; 2x2 est pris sur un champ et pas sur une
image.
</p>

<p>Certaines fonctions v&eacute;rifient les dimensions des images, certaine arrondissent les valeurs,
il peut donc y avoir certaines parties de l'image avec des distorsions ou des erreurs.
</p>

<p>Travailler en YUY2 est plus rapide qu'en RGB. YV12 est encore plus
rapide que YUY2 et est de plus le format natif du format MPEG; il y a
donc moins de conversions d'espaces de couleurs.
</p>

<p>Ces conversions ne sont pas sans pertes, utilisez en donc le moins
possible. Si des conversions multiples sont absolument
n&eacute;cessaires, utilisez <code>ConvertBackToYUY2</code> pour revenir en YUY2 si votre source &agrave; d&eacute;j&agrave; &eacute;t&eacute; dans ce format.
Cela r&eacute;duira le lissage des couleurs, mais il y aura toujours un peu de perte de d&eacute;tail.
</p>

<p>Dans la plupart des cas, le filtre <code>ConvertToRGB</code>n'est
pas n&eacute;cessaire. Si AviSynth renvoie une image dans le format
YUY2 et qu'une application attend du RGB, un codec YUY2 du
syst&egrave;me d&eacute;j&agrave; install&eacute; fera la conversion.
Cependant, si aucun codec YUY2 n'est install&eacute;, ou bien si le
codec converti mal (comme c'est le cas avec les codecs ATI et
d'autres), vous pouvez utiliser le filtre interne d'AviSynth &agrave;
la place.
</p>

<p><a href="http://www.math.berkeley.edu/%7Ebenrg/huffyuv.html" target="_parent">Huffyuv</a>
agit comme le codec YUY2 si aucun autre codec n'est install&eacute;.
Donc, si vous installez Huffyuv ET desinstallez tout les autres codecs
YUY2, vous n'aurez jamais besoin de&nbsp;<code>ConvertToRGB</code>.
</p>

<p><code>ConvertToRGB24</code> et <code>ConvertToRGB32</code> peuvent
&ecirc;tre utilis&eacute;s pour forcer
AviSynth &agrave; utiliser une m&eacute;thodes sp&eacute;cifique pour
enregistrer les donn&eacute;es RGB. Les donn&eacute;es RGB24 sont
souvent plus lentes &agrave; traiter que les donn&eacute;es&nbsp;RGB32,
donc si votre source est en RGB24, vous pouvez gagner de la vitesse en
convertissant en RGB32. Il n'y a aucun avantage &agrave; utiliser le
RGB24 sauf avec TMPGEnc et VFApi qui demandent ce format en
entr&eacute;e.
</p>

<pre># Il existe une l&eacute;g&egrave;re distorsion cr&eacute;&eacute;e par la conversion entre YUV et RGB.<br># Voyons si nous pouvons la voir.<br>control = ConvertToYUY2()<br>test = ConvertToYUY2(ConvertToRGB(ConvertToYUY2(ConvertToRGB(control))))<br>test = ConvertToYUY2(ConvertToRGB(test))<br>return Subtract(test,control)</pre>

<p><kbd>$English date: 2004/12/05 22:31:44 $<br>

French translation date: 2005/11/05 JasonFly <a href="mailto:macpaille@users.sourceforge.net">macpaille@users.sourceforge.net</a></kbd>
</p>

<form><input value="Retour" onclick="history.go(-1)" type="button"></form>

</body>
</html>
